//=========================================================================
// Copyright (C) 2022 The C++ Component Model(COMO) Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//=========================================================================

#include "CService.h"

namespace como {
namespace test {
namespace rpc {

COMO_INTERFACE_IMPL_1(CService, Object, IService);
COMO_OBJECT_IMPL(CService);

CService::CService()
{}

CService::~CService()
{}

ECode CService::TestMethod1(
    /* [in] */ Integer arg1,
    /* [out] */ Integer& result1)
{
    result1 = arg1;
    return NOERROR;
}

ECode CService::TestMethod2(
    /* [in] */ Short arg1,
    /* [in] */ Integer arg2,
    /* [in] */ Long arg3,
    /* [in] */ Float arg4,
    /* [in] */ Double arg5,
    /* [in] */ Boolean arg6,
    /* [in] */ Byte arg7,
    /* [in] */ Char arg8,
    /* [out] */ Short& result1,
    /* [out] */ Integer& result2,
    /* [out] */ Long& result3,
    /* [out] */ Float& result4,
    /* [out] */ Double& result5,
    /* [out] */ Boolean& result6,
    /* [out] */ Byte& result7,
    /* [out] */ Char& result8)
{
    result1 = arg1;
    result2 = arg2;
    result3 = arg3;
    result4 = arg4;
    result5 = arg5;
    result6 = arg6;
    result7 = arg7;
    result8 = arg8;
    return NOERROR;
}

ECode CService::TestMethod3(
    /* [in] */ Short arg1,
    /* [in] */ Integer arg2,
    /* [in] */ Long arg3,
    /* [in] */ Float arg4,
    /* [in] */ Double arg5,
    /* [in] */ Boolean arg6,
    /* [in] */ Byte arg7,
    /* [in] */ Char arg8,
    /* [out] */ Short& result1,
    /* [out] */ Integer& result2,
    /* [out] */ Long& result3,
    /* [out] */ Float& result4,
    /* [out] */ Double& result5,
    /* [out] */ Boolean& result6,
    /* [out] */ Byte& result7,
    /* [out] */ Char& result8)
{
    result1 = arg1;
    result2 = arg2;
    result3 = arg3;
    result4 = arg4;
    result5 = arg5;
    result6 = arg6;
    result7 = arg7;
    result8 = arg8;
    return NOERROR;
}


}
}
}
